System and method for controlling data transfer between multiple interconnected computer systems with an untethered stylus

ABSTRACT

A system and method are provided wherein a user of an interconnected computer system can identify a specific piece of data and then access this data from another computer in the network. This is extremely useful since it is often desirable for data to be capable of being displayed and manipulated from another system during meetings, discussions and the like. The user who wishes to transfer a file to another system simply points an untethered stylus to a representation of a file, such as a filename, icon, or the like and then selects the file to be transferred. The user then carries the stylus to a remote interconnected computer and points the stylus at the remote computer which verifies the identity of the stylus and obtains a path to the selected file. The data file is then transferred from the user&#39;s computer to the remote computer through the network.

This is a continuation of application Ser. No. 07/922,900 filed Jul. 31,1992 now abandoned.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention generally relates to transferring data betweeninterconnected computer systems. More particularly, a stylus is used toselect data in a first computer and then causes the selected data to betransferred to an interconnected remote computer by identifying itselfas the data owner to the remote computer. Also, the stylus can be usedto select a program running on the first computer such that the selectedprogram can be accessed, by using a terminal type link, from the remotecomputer.

2. Description of Related Art

Typically, in transferring data between interconnected data processingsystems a user will execute transmit/receive commands on the appropriatecomputers, or establish a shared disk between them. However, thesemethods require the user to specify a large amount of information and toforesee and identify all possible destinations that may need to receivethe data.

Additionally, it is currently possible to move data from one system toanother via floppy disks, but they are slow, relatively bulky andlimited by the amount of data that can be transferred.

However, none of the conventional methods of transferring data betweeninterconnected systems contemplate the use of an untethered stylus toidentify and initiate the transmission of data. U.S. Pat. No. 4,686,332describes a finger touch and stylus detection system for use on a visualdisplay for entering commands to a system. Further, U.S. Pat. No.5,007,085 also describes a stylus as peripheral device in aninterconnected system. An input system on a computer within theinterconnected system includes stored program instructions which controldetection and log-on procedures for a stylus that is sensed by a remotecomputer system.

Although, it can be seen that use of a stylus in a network ofinterconnected data processors is known, there is no provision forconveniently transferring data between interconnected systems based oninformation input from an untethered stylus such that data appears tohave been transferred by the user's stylus, when the user inputs data ona remote computer.

SUMMARY OF THE INVENTION

In contrast to the prior art, the present invention allows a user of aninterconnected computer system to identify a specific piece of data andthen access this data from another computer in the network. This isextremely useful since it is often desirable for data to be capable ofbeing displayed and manipulated from another system during meetings,discussions and the like.

The user who wishes to transfer a file to another system simply pointsan untethered stylus to a representation of a file, such as a filename,icon, or the like and then selects the file to be transferred. The userthen carries the stylus to a remote interconnected computer and pointsthe stylus at the remote computer, thereby transferring the data filefrom the user's computer to the remote computer through the network.This transfer appears to be transparent to the user.

Similarly, a user may establish a "link" to a program running on theuser's home computer system from a remote location. More particularly,the stylus is used to select the running program prior to the user'sdeparture. Once at the remote location, the user enables the styluswhich identifies the path to the home computer and the program. In thismanner the link is created between the remote computer and the programrunning on the user's home computer such that keystrokes, or other inputdata is provided from the remote computer to the program, and outputdata from the program is displayed on the remote system.

One example of a hardware system contemplated by the present inventionincludes an untethered stylus with a battery that transmits a magneticfield when enabled (usually by being placed in close proximity to acomputer screen). The computer system contains a matrix of wires andcontrol logic which monitors the actions of the stylus by detecting theemitted magnetic field. The computer systems must be able to uniquelyidentify each stylus in order to link it with the selected file. Thestylus can be made to emit an identification code when it is broughtnear the display. Generally, whenever a user selects a file, the user'scomputer system records an association between the stylus identificationcode and, the file. Subsequently, when the stylus ID code is detected atanother computer system in the network, the data is transferred, throughthe network, to the other computer.

One method of implementing this is to associate each stylus with a"home-base" computer. The ID code emitted by the stylus would includethe path to the home-base computer (directly or through a look uptable). The home-base computer would then transfer the selected data tothe remote computer that detected the stylus ID code.

Therefore, in accordance with the previous summary, objects, featuresand advantages of the present invention will become apparent to oneskilled in the art from the subsequent description and the appendedclaims taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram showing the various components of a dataprocessing system that can be interconnected in a network and which cantake advantage of the present invention;

FIG. 2 shows a network of interconnected computer systems;

FIG. 3 is a display screen of a user's computer system during selectionof a file to be transferred using the present invention;

FIG. 4 is a display screen of a remote interconnected computer systembefore the selected file has been transferred thereto;

FIG. 5 is the display screen of the remote interconnected computersystem after the user has implemented transfer of the selected file fromthe user's home computer;

FIG. 6 shows the display screens of the user's home computer and thedisplay screens of two remote interconnected computer systems toillustrate the utility of the present invention on plural remotesystems; and

FIG. 7A and 7b are flowcharts illustrating the method by which thepresent invention transfers data from one interconnected computer toanother using an untethered stylus.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring to FIG. 1, a typical data processing system is shown which maybe used in conjunction with the present invention. The centralprocessing unit (CPU) 10, may be one of the Intel X86 processors and isprovided and interconnected to the various other components by systembus 12. Read only memory (ROM) 16 is connected to CPU 10 via bus 12 andincludes the basic input/output system (BIOS) that controls the basiccomputer functions. Random access memory (RAM) 14 I/O adapter 18 andcommunications adapter 34 are also interconnected to system bus 12. I/Oadapter 18 may be a small computer system interface (SCSI) adapter thatcommunicates with a disk storage device 20. Communications adapter 34interconnects bus 12 with outside networks enabling the data processingsystem to communicate with other such systems. Input/output devices arealso connected to system bus 12 via user interface adapter 22 anddisplay adapter 36. Keyboard 24, track ball 32, mouse 26 and speaker 28are all interconnected to bus 12 via user interface adapter 22. Displaymonitor 38 is connected to system bus 12 by display adapter 36. Anuntethered stylus 40 is also shown which will allow a user to interactwith the system shown in FIG. 1, through display 38. A stylusreceiver/detector 39 is also shown which is essentially a matrix ofelectrical conductors (for detecting electromagnetic fields) embedded ina transparent membrane and placed over the screen (CRT) of display 38.The means by which stylus 40 interacts with display 38 is well known inthe art as previously noted by U.S. Pat. No. 4,686,332 and 5,007,085which are hereby incorporated by reference. In this manner, a user iscapable of inputting data to the system through the keyboard 24, trackball 32, mouse 26 or stylus 40 and receiving output from the system viaspeaker 28 and display 38. Additionally, an operating system such as DOSor the OS/2 system (OS/2 is a Trademark of the IBM Corporation) is usedto coordinate the functions of various components shown in FIG. 1. Itshould be noted that a stylus, or pen, is described herein merely as anexample of one type of device that can be used in conjunction with thepresent invention. Any other untethered devices or means that arecapable of identifying a user to a computer, such as computerrecognizable optical or audio commands (including tones and voice) arealso contemplated by the present invention.

FIG. 2 shows a plurality of interconnected data processing systems 50.These systems may include personal computers such as the IBM PS/2, orworkstations such as the IBM RISC System/6000 (PS/2 and RISC System/6000are Trademarks of IBM Corporation) or the like. Reference numeral 50represents a hardware platform having components such as thoseillustrated in FIG. 1. A bus 54, or the like interconnect each of theplurality of systems 50 such that a network of data processing systemsis provided. Each system 50 will include a communications interface 52which is a communications protocol program, such as TCP/IP, that iseffectively a communications program device driver for each individualsystem shown in FIG. 2. It should be noted that many connection schemesare known in the art and the present invention is not dependent upon aparticular type of network system, but may be implemented on any systemwith interconnected data processing system capable of communicating withone another. The previous description of a typical system is provided asan example only, and should not be considered a limitation orrequirement of the present invention.

FIG. 3 is a screen from display 38 which shows computer program 65(running in a window), two icons 60 and 70 as well as stylus 40. Itshould be noted that is FIGS. 3-6 the stylus 40 is actually above thescreen, but close enough for the system to detect its presence. Icons 60and 70 represent objects which are programs in object oriented format.For example, icon 70 is a printer function program, or printer devicedriver to control the printing operations of the data processing system.Similarly, icon 60 may be a word processing program application or adocument stored in the word processing application. It should be notedthat object oriented programming is well known in the art andextensively used in computer programs such as OS/2 (OS/2 is a Trademarkof IBM Corporation) and WINDOWS (WINDOWS is a Trademark of MicrosoftCorporation). Generally, these objects are selected either by keyboardstrokes or by clicking on the icon with a mouse. Similarly a userinteracts with active program 65 (which may be a word processingprogram, game, or the like) by using the keyboard an/or a mouse,depending upon the capabilities of the program. Of course, input meanssuch as a stylus 40 can also be used to select an icon representative ofan object oriented program as contemplated by the present invention.

In order to implement the present invention, the interconnected computersystem must be able to uniquely identify each stylus 40 in order to linkthe stylus, or pen, with selected data, or a running program. Stylus 40can be modified such that it contains a unique identification code whichis emitted when it is brought near the display. Again, in a system usedas an example of the present invention, the stylus is battery poweredand transmits a magnetic field when enabled, which occurs when thestylus is brought in close proximity to the computer screen. A matrix ofwires and control logic is contained in a transparent film placed overthe computer screen that allows actions of the stylus to be monitored bydetecting the magnetic field emitted by the stylus when enabled. When auser selects a data unit, such as icon 60 (representing an objectoriented program) or a running program, the computer system records anassociation between the stylus identification code and the particularentity. It should be noted that "entity" as used herein will includeboth data units (files or data files) as well as active (running)programs, e.g. programs 63, 65 and inactive program 70. In this manner,if the stylus identification code is then detected at another remotelyinterconnected computer system the data is transferred through thenetwork to the other computer.

Additionally, if a running program is selected at the home computer andthe stylus identification code is then detected at the remote computer,a "link" is established from the remote computer to a program running onthe home computer. It should be noted that remote terminals are know inthe art, however an embodiment of the present invention is utilized toestablish this link between remote computer systems. This link willallow a user to input commands, e.g. keystrokes, mouse clicks, to therunning program from the remote system, and also to receive displayoutput from the running program. In this manner, a user can remotelyinteract with a computer program running on the user's home computer,through the link established by the system of the present invention. Oneadvantage of providing this linking capability is to allow a user to runa program on the home computer so that the initialization time requiredto start the program will be unnecessary from the remote location. Forexample, a word processing program can be running with a particulardocument being edited such that the user can immediately access theprogram and the document, without having to initialize the program andselect the document. In other words, the user can leave a programrunning with work in progress at one computer and access the program(work), from another interconnected system, at the point where the userleft it. Further, establishing a link eliminated any need to transferthe program from the home computer to the remote computer when its useis desired. Those skilled in the art will understand that the same pathbetween interconnected home and remote computers, used to transfer data,can be used to establish the linking feature of the present invention.It should be understood that a user must select a program prior toleaving the home system, and leave the selected program running at thehome computer, in order to interact with the program via the link.

It is possible to establish a connection between all the computers inthe network such that upon detection of the stylus identification codeand a data unit selection, at any one of the network computers, thesystem containing the data unit would distribute the data or its addressto all systems interconnected on the network. This solution may besomewhat impractical in large networks, however storing associations ona server system may be acceptable.

In a preferred embodiment of the present invention each stylus will beassociated with a "home-base" computer. The emitted identification codefrom the stylus would include a path to home-base. This path can beimplemented either directly in the identification code or through theuse of a look-up table, or the like. All of the associations between thestylus id code and data unit association will be listed on the home-basecomputer.

Returning to FIG. 3, an example of the operation of the presentinvention will now be provided, wherein computer A is considered to bethe home-base computer for stylus 40. An identification code (stylusidentification, or SID) is associated with stylus 40. The user thenselects an entity from home-base computer A. In this example, object 60is selected by the user. It can be seen that object 60 may be adocument, or other program that a user has created on the home-basecomputer and now wishes to transfer to another system for purposes ofdiscussion, meeting, revisions, or the like. Subsequent to selection ofobject 60 by the user, computer A makes a data base entry in a table, orthe like, that includes the stylus identification code, the addresswhere object 60 is located, and the name of object 60. The user thenphysically carries stylus 40 to another computer B on the network. Itshould be noted that this computer can be across the hall or across thecountry, as long as the computers are interconnected and contain thesame communication protocol, as previously discussed.

FIG. 4 represents a computer, e.g. computer B, that is interconnected tocomputer A. Computer B includes objects 70 and 80, but not object 60,since Figure represents the state of computer B prior to implementationof a data transfer as contemplated by the present invention. The userplaces stylus 40 in close proximity to screen 38 and receiver 39 ofcomputer B such that the stylus is enabled. Computer B then recognizesthe stylus identification code as valid and looks up the home-basecomputer for the stylus corresponding to the identification code.Computer B will find that home-base for stylus 40 is computer A.Computer B then asks computer A for the table entry created for thestylus 40. Computer A will then send the stylus entry to computer B andinclude the name (filename) of the entity (the data unit) and itsaddress. In this case, computer B will ask computer A for object 60,which is then transmitted through computer B for display on screen 38thereof.

In this manner, object 60 is now displayed on screen 38 of computer B,as shown in FIG. 5. Thus, data is transferred from one computer toanother through a network by use of a stylus identification code and atable entry that includes the address for the object to be transmitted,the stylus identification, and the object name. It will appear to theuser that the present invention is a variation of the "drag and drop"concept which has been extended to work between separate computersystems rather than merely move objects across the screen of a singlesystem. The user will select the object to be mowed (or transmitted to aseparate computer and then physically carry the stylus, to anotherinterconnected system. The user then points the stylus to a space on thescreen of the second computer and "drops" the data. The data is thentransferred through the network to the second computer, but appears to auser to have been dropped by the stylus 40. Thus it will appear to theuser that the data is dragged from one computer to a remoteinterconnected computer and then dropped thereon.

Also, in accordance with the present invention, the user may selectprogram 65, or task, such as a word processing program, or the like,running on computer A. The user can then carry the stylus to remotecomputer B and identify the stylus to computer B. Similar to thetransfer of data, computer B will determine that computer A is home-basefor this stylus and ask computer A for the table entry created for thisprogram. The table entry will be sent by computer A to computer B andwill include the program name and address. Thus, a link is establishedfrom computer B to the program (task) running at computer A such that aremote user is capable of interacting with the program.

Again referring to FIGS. 3-5, an alternate use of the present inventionwill be described. For example, again assume that computer A is thehome-base system for the stylus. The user is currently working oncomputer B and desires to transfer a printer driver 70 in object form tocomputer A by use of stylus The user "gets", or selects, printer driver70 on computer B which then looks up the home-base computer for thestylus 40. Computer B then finds that computer A is the home-base andsends a table entry that includes the stylus identification code, anentity address at computer B, and entity filename to computer A. Theuser then returns with stylus 40 to the home-base computer A. The stylusis then enabled such that the user asks for the entity (object 70) to be"put" into computer A. This time computer A looks up the address of thestylus identification code and finds that it (computer A) is thehome-base computer for this particular stylus., i.e. address is equal tocomputer A. The table entry for the stylus identification code 40 isthen obtained from computer B along with the entity name. Subsequently,computer A asks computer B for the entity, in this case printer driver70, which is then displayed on computer A. Thus, it can be seen how thepresent invention allows data to be selected on a home-base computersuch that it can be transferred to other interconnected computers in thesystem, and data can be selected on a remote interconnected system fortransfer back to the home-base computer, as desired by a user.Additionally, a user can establish a link from the home computer to theremote computer by: initiating a program at the remote location;selecting the running program; and identifying the stylus to the homecomputer. This will establish the link back to the program running onthe remote computer. For example, program 65 is running on computer Band by use of the present invention a user can access and interact withprogram 65 from computer A by establishing a link back to computer Busing the method described above.

Another use of the present invention will now be described with regardto FIG. 6. Again, computer A is shown with objects 60 and 70 displayedon screen thereof. Computer B is interconnected to computer A by network54 and includes objects 50 and 70 along with a data base, or fileprogram representative by icon 80. Objects 60, 70 and 80 are displayedon screen 38 of computer B. Another interconnected computer C is shownhaving object 80 displayed on screen 38 thereof. Again, the home-basecomputer for stylus 40 is computer system A. In this example, the useris physically located at computer system B and selects object 80 (thedata base or file program) displayed in object oriented format on screen38 of computer B. The stylus identification code is validated bycomputer B which also looks up the address of the stylus and sees thatcomputer A is the home-base system for this particular stylus. ComputerB then sends the table entry including the stylus identification code,computer B as the address of the program represented by icon 80 and thename of the program to computer A. The user then physically carries thestylus 40 to computer C which is another interconnected computer on thesystem. Stylus 40 is enabled and the user seeks to "put" the programrepresented by icon 80 onto computer C. Upon enablement of stylus 40,computer C looks up the address associated with the identification codefor stylus 40. Computer C then determines that computer A is thehome-base computer for this particular stylus and asks computer A forthe table entry (previously sent by computer B) associated with thisstylus identification code. Computer C then obtains the table entry forthe stylus identification and determines that the address of the programis at computer B and also determines the program name for the objectoriented program represented by icon 80. Computer C then asks computer Bfor the program using the filename of the program from the table entryand displays the program represented by icon 80 subsequent to transferof the data from computer B to computer C. Again, it should beunderstood that a user can run a program on any one of theinterconnected computer systems and establish a link back to thatprogram, or task, from any other of the interconnected computer systemsby using the method previously described with regard to the transfer ofdata between systems, i.e. identifying the stylus and its home-basecomputer and accessing the look up table entry to obtain the address forthe entity. More particularly, game program 63 is left running oncomputer C and a link can be established from computer A that will allowa user to interact with game 63 on computer C.

Therefore, it can be seen how a stylus can be associated with aparticular home-base computer and a user may work between several remoteinterconnected systems (which are not home-base for the stylus) andtransfer data between remote computers as well as a remote computer andthe home-base computer or vice-versa. In this manner, a great deal offlexibility is provided as a user travels or needs to share variousprograms with other interconnected users.

FIGS. 7A and B are flowcharts that represent the process by which thestylus 40, or pen can be used to implement the transfer of data amongvarious interconnected computer systems. At step 1 the process isstarted, and at step 2 the identification code for a particular stylusis obtained by the computer system at which the user is currentlypointing the stylus. The address of the home-base computer associatedwith the particular pen identification, is then looked up from a table,or the like at step 3. The computer at which the user is currentlyworking (and where the pen is enabled) receives (gets) the pen action atstep 4. It is then determined at step 5 what type of pen action isdesired by the user. For example, a certain code will be present if theuser to desires to select (or get) a particular object (data orprogram), whereas another code will be present (or the get code will beabsent) when the user desires to put a particular object onto thecomputer system at which the user is currently working. If the user isselecting an object for potential future transfer to a remote system, ora link to a running program, the process continues to step 6 where atable entry is prepared which includes data relating to the penidentification code, the computer address for the system at which theuser is currently selecting (getting) the program, and the filename ofthe data, or the name of the program (entity name) that has beenselected by the user. Subsequent to preparation of the table entry, thecomputer at which the user is working sends the table entry to thehome-base computer that is associated with the particular stylus (step7). Subsequent to step 7, the get function is completed and the processends at step 8. Returning to step 5, if the user currently wishes toplace (or put) a previously selected data unit or program link onto thesystem at which the user is currently working, the table entrypreviously prepared when the data unit or program was selected isobtained (step a) from the home-base computer using the associated penid code (recognized by the computer system at which the user isworking). Subsequent to obtaining the table entry, the computer at whicha user desires to display the data unit or program obtains the entityname and the computer address at which this particular entity residesfrom the table entry received from the home-base computer (step 10).Once the filename and address for the desired Knit is obtained, theentity is then transferred from the computer, at which the programresides, to the computer where the user desires the information to bedisplayed (step 11). Once obtained, the data unit is then displayed(step 12) at the remote computer, designated by the user. It should benoted that the data unit displayed on the remote computer, may becapable of being manipulated by the user from the remote site and notmerely displayed. If a user desires to link to an running program, thelink is established (step 11) and the display output from the runningprogram is displayed at step 12 such that a user can interact with theprogram. Subsequent to display of the data unit or linked program at theremote computer, the process continues to step 8 and ends. Therefore, itcan be seen that the present invention contemplates a system whereineach user may have a uniquely identified stylus that is associated witha home-base computer. Various table entries can then be created forprograms, or the like such that a path, through the home-base computercan be created a stylus with a particular identification can access anypreviously selected data unit through the home-base computer and thetable entry.

Although certain preferred embodiments have been shown and described, itshould be understood that many changes and modifications can be madetherein without departing from the scope of the appended claims.

What is claimed is:
 1. A method of transferring data betweeninterconnected data processing systems, the method comprising the stepsof:assigning a user to a portable stylus which contains anidentification of the user that is detectable by each of the dataprocessing systems; selecting, with said portable stylus, data from afirst one of the data processing systems for transfer to an unidentifiedone of the data processing systems; detecting the identification at asecond one of the data processing systems via the portable stylus; andtransferring, in response to the detection of the identification, theselected data to the second data processing system.
 2. The method ofclaim 1 wherein said step of selecting includes the step of:creating atable entry including an identification code of the portable stylus, anidentification of the first data processing system, and the name of theselected data.
 3. The method of claim 2 wherein the step of transferringincludes the steps of:obtaining, in response to detecting theidentification, the table entry from the first data processing system;determining the location of the selected data using the table entry; andtransferring the selected data to the second data processing system. 4.In a network of computers, a method of providing control over a computerprogram, executing on a first one of the computers, with a second one ofthe computers, the method comprising the steps of:assigning a user to aportable stylus which contains an identification of the user that isdetectable by each of the data processing systems; selecting, with theportable stylus, the computer program for control thereof by anunidentified one of the computers; detecting the identification at asecond one of the computers via the portable stylus; and linking, inresponse to detecting the identification, the second computer to thefirst computer, thereby providing control of the computer program to thesecond computer.
 5. The method of claim 4 wherein the step of selectingincludes the step of:creating a table entry including an identificationof the portable stylus, an identification of the first computer, and thename of the computer program.
 6. The method of claim 5 wherein the stepof linking includes the steps of:obtaining, in response to detecting theidentification, the table entry from the first computer; determining thelocation of the computer program using the table entry; and linking thesecond computer to the first computer, thereby providing control oversaid computer program.
 7. An apparatus for transferring data betweeninterconnected data processing systems, the apparatus comprising:meansfor assigning a user to a portable stylus which contains anidentification of the user that is detectable by each of the dataprocessing systems; means for selecting, with the portable stylus, datafrom a first one of the data processing systems for transfer to anunidentified one of the data processing systems; means for detecting theidentification at a second one of the data processing systems via theportable stylus; and means for transferring, in response to theidentification, the selected data to the second data processing system.8. The apparatus of claim 7 wherein said means for selectingincludes:means for creating, in response to detecting theidentification, a table entry including an identification code of theportable stylus, an identification of said first data processing system,and the name of the selected data.
 9. The apparatus of claim 8 whereinthe means for transferring includes:means for obtaining, in response todetecting the identification, the table entry from the first dataprocessing system; means for determining the location of the selecteddata using the table entry; and means for transferring the selected datato the second data processing system.
 10. The apparatus of claim 9wherein the means for selecting includes:means for creating a tableentry including an identification of the portable stylus, anidentification of the first computer, and the name of the computerprogram.
 11. The apparatus of claim 10 wherein the means for linkingincludes:means for obtaining, in response to detecting theidentification, the table entry from the first computer; means fordetermining the location of the selected data using the table entry; andmeans for linking the second computer to the first computer, therebyproviding control over the computer program.
 12. In a network ofcomputers, an apparatus for providing control over a computer program,executing on a first one of said computers, with a second one of saidcomputers, said apparatus comprising:means for assigning a user to aportable stylus which contains an identification of the user that isdetectable by each of the data processing systems; means for selecting,with the portable stylus, the computer program for control thereof by anunidentified one of the computers; means for detecting theidentification at a second one of the computers via the portable stylus;and means for linking, in response to detecting the identification, thesecond computer to the first computer, thereby providing control of thecomputer program to the second computer.